package com.example.onlinemonitoring.AOP;
 
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
 
import java.io.IOException;
import java.text.DecimalFormat;
 
/**
 * 小数保留2位返回给前端序列化器
 *
 * @author： 刘朋
 * <br/>date： 2020-04-15
 */
public class Float2Serializer extends JsonSerializer<Float> {
 
    private DecimalFormat df = new DecimalFormat("0.00"); // 创建DecimalFormat对象，用于格式化小数，保留两位小数
 
    /**
     * 小数保留2位返回给前端序列化器
     * @param data 要序列化的Float类型数据
     * @param jsonGenerator 用于生成JSON的JsonGenerator对象
     * @param serializerProvider 序列化提供者
     * @throws IOException 如果发生I/O错误
     */
    @Override
    public void serialize(Float data, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
            throws IOException {
        if (data != null) { // 检查数据是否为null
            if (data == 0) { // 如果数据为0
                jsonGenerator.writeString("0"); // 将字符串"0"写入JSON生成器
            } else { // 如果数据不为0
                jsonGenerator.writeString(df.format(data)); // 格式化数据并写入JSON生成器
            }
        }
    }
 
}

 